#include"process.h"
#include<stdio.h>
#include<string.h>
#include<unistd.h>

#define NUM 101
#define STYLE '='
#define POINT '.'
#define SPACE ' '

const int pnum=6;


//version 2:真实的进度条，应该根据具体的的下载量，来动态刷新进度
void FlushProcess(double total,double current)
{
    int i=0;
    //1.更新当前进度百分比
    double rate=(current/total)*100;

    //2.更新进度主体
    char bar[NUM];
    memset(bar,'\0',sizeof(bar));
    for(i=0;i<(int)rate;i++)
    {
        bar[i]=STYLE;
    }
    //3.更新.
    static int num=0;
    num++;
    num%=pnum;

    char points[pnum+1];
    memset(points,'\0',sizeof(points));
    for(i=0;i<pnum;i++)
    {
        if(i<num) points[i]=POINT;
        else points[i]=SPACE;
    }

    printf("[%-100s][%.1lf%%]%s\r",bar,rate,points);
    fflush(stdout);
}

//void Process()
//{
//    const char* lable="|/-\\";
//    char bar[NUM];
//    memset(bar,'\0',sizeof(bar));
//    int cnt=0;
//    while(cnt<=100)
//    {
//        printf("[%-100s][%d%%][%c]\r",bar,cnt,lable[cnt%4]);
//        fflush(stdout);
//        bar[cnt]STYLE;
//        cnt++;
//        if(cnt==NUM)
//        {
//            bar[cnt-1]='\0';
//            printf("[%-100s][%d%%][%c]\r",bar,cnt-1,lable[cnt%4]);
//            break;
//        }
//        
//        bar[cnt]='>';
//
//        usleep(50000);
//    }
//    printf("\r\n");
//}
